<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkObject</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GTK+ 2 Reference Manual">
<link rel="up" href="AbstractObjects.html" title="Abstract Base Classes">
<link rel="prev" href="GtkMisc.html" title="GtkMisc">
<link rel="next" href="GtkPaned.html" title="GtkPaned">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="GtkMisc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="AbstractObjects.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GTK+ 2 Reference Manual</th>
<td><a accesskey="n" href="GtkPaned.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#GtkObject.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#GtkObject.description" class="shortcut">Description</a>
                   | 
                  <a href="#GtkObject.object-hierarchy" class="shortcut">Object Hierarchy</a>
                   | 
                  <a href="#GtkObject.properties" class="shortcut">Properties</a>
                   | 
                  <a href="#GtkObject.signals" class="shortcut">Signals</a>
</td></tr>
</table>
<div class="refentry">
<a name="GtkObject"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GtkObject.top_of_page"></a>GtkObject</span></h2>
<p>GtkObject — The base class of the GTK+ type hierarchy</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="GtkObject.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;gtk/gtk.h&gt;

                    <a class="link" href="GtkObject.html#GtkObject-struct" title="GtkObject">GtkObject</a>;
#define             <a class="link" href="GtkObject.html#GTK-OBJECT-TYPE:CAPS" title="GTK_OBJECT_TYPE">GTK_OBJECT_TYPE</a>
#define             <a class="link" href="GtkObject.html#GTK-OBJECT-TYPE-NAME:CAPS" title="GTK_OBJECT_TYPE_NAME">GTK_OBJECT_TYPE_NAME</a>
enum                <a class="link" href="GtkObject.html#GtkObjectFlags" title="enum GtkObjectFlags">GtkObjectFlags</a>;
#define             <a class="link" href="GtkObject.html#GTK-OBJECT-FLAGS:CAPS" title="GTK_OBJECT_FLAGS()">GTK_OBJECT_FLAGS</a>                    (obj)
#define             <a class="link" href="GtkObject.html#GTK-OBJECT-FLOATING:CAPS" title="GTK_OBJECT_FLOATING()">GTK_OBJECT_FLOATING</a>                 (obj)
enum                <a class="link" href="GtkObject.html#GtkArgFlags" title="enum GtkArgFlags">GtkArgFlags</a>;
<a class="link" href="GtkObject.html" title="GtkObject"><span class="returnvalue">GtkObject</span></a> *         <a class="link" href="GtkObject.html#gtk-object-new" title="gtk_object_new ()">gtk_object_new</a>                      (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-sink" title="gtk_object_sink ()">gtk_object_sink</a>                     (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);
<a class="link" href="GtkObject.html" title="GtkObject"><span class="returnvalue">GtkObject</span></a> *         <a class="link" href="GtkObject.html#gtk-object-ref" title="gtk_object_ref ()">gtk_object_ref</a>                      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-unref" title="gtk_object_unref ()">gtk_object_unref</a>                    (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-weakref" title="gtk_object_weakref ()">gtk_object_weakref</a>                  (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-weakunref" title="gtk_object_weakunref ()">gtk_object_weakunref</a>                (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-destroy" title="gtk_object_destroy ()">gtk_object_destroy</a>                  (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-get" title="gtk_object_get ()">gtk_object_get</a>                      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-set" title="gtk_object_set ()">gtk_object_set</a>                      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-set-data" title="gtk_object_set_data ()">gtk_object_set_data</a>                 (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-set-data-full" title="gtk_object_set_data_full ()">gtk_object_set_data_full</a>            (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-remove-data" title="gtk_object_remove_data ()">gtk_object_remove_data</a>              (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="GtkObject.html#gtk-object-get-data" title="gtk_object_get_data ()">gtk_object_get_data</a>                 (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-remove-no-notify" title="gtk_object_remove_no_notify ()">gtk_object_remove_no_notify</a>         (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-set-user-data" title="gtk_object_set_user_data ()">gtk_object_set_user_data</a>            (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="GtkObject.html#gtk-object-get-user-data" title="gtk_object_get_user_data ()">gtk_object_get_user_data</a>            (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-add-arg-type" title="gtk_object_add_arg_type ()">gtk_object_add_arg_type</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_name</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> arg_type</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_flags</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_id</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-set-data-by-id" title="gtk_object_set_data_by_id ()">gtk_object_set_data_by_id</a>           (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-set-data-by-id-full" title="gtk_object_set_data_by_id_full ()">gtk_object_set_data_by_id_full</a>      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="GtkObject.html#gtk-object-get-data-by-id" title="gtk_object_get_data_by_id ()">gtk_object_get_data_by_id</a>           (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-remove-data-by-id" title="gtk_object_remove_data_by_id ()">gtk_object_remove_data_by_id</a>        (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GtkObject.html#gtk-object-remove-no-notify-by-id" title="gtk_object_remove_no_notify_by_id ()">gtk_object_remove_no_notify_by_id</a>   (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> key_id</code></em>);
#define             <a class="link" href="GtkObject.html#gtk-object-data-try-key" title="gtk_object_data_try_key">gtk_object_data_try_key</a>
#define             <a class="link" href="GtkObject.html#gtk-object-data-force-id" title="gtk_object_data_force_id">gtk_object_data_force_id</a>
</pre>
</div>
<div class="refsect1">
<a name="GtkObject.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         +----GtkObject
               +----<a class="link" href="GtkWidget.html" title="GtkWidget">GtkWidget</a>
               +----<a class="link" href="GtkAdjustment.html" title="GtkAdjustment">GtkAdjustment</a>
               +----<a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer">GtkCellRenderer</a>
               +----<a class="link" href="gtk-gtkfilefilter.html#GtkFileFilter">GtkFileFilter</a>
               +----<a class="link" href="GtkItemFactory.html" title="GtkItemFactory">GtkItemFactory</a>
               +----<a class="link" href="GtkTooltips.html" title="GtkTooltips">GtkTooltips</a>
               +----<a class="link" href="GtkTreeViewColumn.html" title="GtkTreeViewColumn">GtkTreeViewColumn</a>
               +----<a class="link" href="GtkRecentFilter.html" title="GtkRecentFilter">GtkRecentFilter</a>
</pre>
</div>
<div class="refsect1">
<a name="GtkObject.properties"></a><h2>Properties</h2>
<pre class="synopsis">
  "<a class="link" href="GtkObject.html#GtkObject--user-data" title='The "user-data" property'>user-data</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Read / Write
</pre>
</div>
<div class="refsect1">
<a name="GtkObject.signals"></a><h2>Signals</h2>
<pre class="synopsis">
  "<a class="link" href="GtkObject.html#GtkObject-destroy" title='The "destroy" signal'>destroy</a>"                                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-NO-HOOKS:CAPS"><code class="literal">No Hooks</code></a>
</pre>
</div>
<div class="refsect1">
<a name="GtkObject.description"></a><h2>Description</h2>
<div class="refsect2">
<a name="id1255362"></a><h3>Description</h3>
<p>
<a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> is the base class for all widgets, and for a few
non-widget objects such as <a class="link" href="GtkAdjustment.html" title="GtkAdjustment"><span class="type">GtkAdjustment</span></a>. <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> predates
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>; non-widgets that derive from <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> rather than
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> do so for backward compatibility reasons.
</p>
<p>
<a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>s are created with a "floating" reference count.
This means that the initial reference is not owned by anyone. Calling
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> on a newly-created <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> is incorrect, the floating
reference has to be removed first. This can be done by anyone at any time,
by calling <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref-sink"><code class="function">g_object_ref_sink()</code></a> to convert the floating reference into a
regular reference. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref-sink"><code class="function">g_object_ref_sink()</code></a> returns a new reference if an object
is already sunk (has no floating reference).
</p>
<p>
When you add a widget to its parent container, the parent container
will do this:
</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref-sink">g_object_ref_sink</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child_widget</span><span class="symbol">));</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p>
This means that the container now owns a reference to the child widget
and the child widget has no floating reference.
</p>
<p>
The purpose of the floating reference is to keep the child widget alive
until you add it to a parent container:
</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="normal">button </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkButton.html#gtk-button-new">gtk_button_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="comment">/* button has one floating reference to keep it alive */</span>
<span class="function"><a href="GtkContainer.html#gtk-container-add">gtk_container_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_CONTAINER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">container</span><span class="symbol">),</span><span class="normal"> button</span><span class="symbol">);</span>
<span class="comment">/* button has one non-floating reference owned by the container */</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p>
</p>
<p>
<a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> is a special case, because GTK+ itself will ref/sink it on creation.
That is, after calling <a class="link" href="GtkWindow.html#gtk-window-new" title="gtk_window_new ()"><code class="function">gtk_window_new()</code></a>, the <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> will have one
reference which is owned by GTK+, and no floating references.
</p>
<p>
One more factor comes into play: the "destroy" signal, emitted by the
<a class="link" href="GtkObject.html#gtk-object-destroy" title="gtk_object_destroy ()"><code class="function">gtk_object_destroy()</code></a> method. The "destroy" signal asks all code owning a
reference to an object to release said reference. So, for example, if you call
<a class="link" href="GtkObject.html#gtk-object-destroy" title="gtk_object_destroy ()"><code class="function">gtk_object_destroy()</code></a> on a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>, GTK+ will release the reference count that
it owns; if you call <a class="link" href="GtkObject.html#gtk-object-destroy" title="gtk_object_destroy ()"><code class="function">gtk_object_destroy()</code></a> on a <a class="link" href="GtkButton.html" title="GtkButton"><span class="type">GtkButton</span></a>, then the button will
be removed from its parent container and the parent container will release its
reference to the button.  Because these references are released, calling
<a class="link" href="GtkObject.html#gtk-object-destroy" title="gtk_object_destroy ()"><code class="function">gtk_object_destroy()</code></a> should result in freeing all memory associated with an
object, unless some buggy code fails to release its references in response to
the "destroy" signal. Freeing memory (referred to as
<em class="firstterm">finalization</em> only happens if the reference count reaches
zero.
</p>
<p>
Some simple rules for handling <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>
Never call <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> unless you have previously called <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a>,
even if you created the <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>. (Note: this is <span class="emphasis"><em>not</em></span>
true for <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>; for <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>, the creator of the object owns a reference.)
</p></li>
<li class="listitem"><p>
Call <a class="link" href="GtkObject.html#gtk-object-destroy" title="gtk_object_destroy ()"><code class="function">gtk_object_destroy()</code></a> to get rid of most objects in most cases.
In particular, widgets are almost always destroyed in this way.
</p></li>
<li class="listitem"><p> Because of the floating reference count, you don't need to
worry about reference counting for widgets and toplevel windows, unless you
explicitly call <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> yourself.</p></li>
</ul></div>
<p>
</p>
</div>
</div>
<div class="refsect1">
<a name="GtkObject.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GtkObject-struct"></a><h3>GtkObject</h3>
<pre class="programlisting">typedef struct _GtkObject GtkObject;</pre>
<p>
The object itself.  You should never use these members directly -
 use the accessing macros instead.
</p>
</div>
<hr>
<div class="refsect2">
<a name="GTK-OBJECT-TYPE:CAPS"></a><h3>GTK_OBJECT_TYPE</h3>
<pre class="programlisting">#define GTK_OBJECT_TYPE                   G_OBJECT_TYPE
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">GTK_OBJECT_TYPE</code> has been deprecated since version 2.20 and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT-TYPE:CAPS"><code class="function">G_OBJECT_TYPE()</code></a> instead.</p>
</div>
<p>
Gets the type of an object.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>a <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GTK-OBJECT-TYPE-NAME:CAPS"></a><h3>GTK_OBJECT_TYPE_NAME</h3>
<pre class="programlisting">#define GTK_OBJECT_TYPE_NAME              G_OBJECT_TYPE_NAME
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">GTK_OBJECT_TYPE_NAME</code> has been deprecated since version 2.20 and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT-TYPE-NAME:CAPS"><code class="function">G_OBJECT_TYPE_NAME()</code></a> instead.</p>
</div>
<p>
Gets the name of an object's type.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>a <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkObjectFlags"></a><h3>enum GtkObjectFlags</h3>
<pre class="programlisting">typedef enum {
  GTK_IN_DESTRUCTION = 1 &lt;&lt; 0, /* Used internally during dispose */
  GTK_FLOATING		= 1 &lt;&lt; 1,
  GTK_RESERVED_1 = 1 &lt;&lt; 2,
  GTK_RESERVED_2 = 1 &lt;&lt; 3
} GtkObjectFlags;
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">GtkObjectFlags</code> has been deprecated since version 2.22 and should not be used in newly-written code. Do not re-use <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> flags but use your own variable to
  store flags.</p>
</div>
<p>
Tells about the state of the object.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GTK-IN-DESTRUCTION:CAPS"></a><span class="term"><code class="literal">GTK_IN_DESTRUCTION</code></span></p></td>
<td>the object is currently being destroyed. This is used 
  internally by GTK+ to prevent reinvokations during destruction.
</td>
</tr>
<tr>
<td><p><a name="GTK-FLOATING:CAPS"></a><span class="term"><code class="literal">GTK_FLOATING</code></span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><a name="GTK-RESERVED-1:CAPS"></a><span class="term"><code class="literal">GTK_RESERVED_1</code></span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><a name="GTK-RESERVED-2:CAPS"></a><span class="term"><code class="literal">GTK_RESERVED_2</code></span></p></td>
<td>reserved for future use
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GTK-OBJECT-FLAGS:CAPS"></a><h3>GTK_OBJECT_FLAGS()</h3>
<pre class="programlisting">#define GTK_OBJECT_FLAGS(obj)		  (GTK_OBJECT (obj)-&gt;flags)
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">GTK_OBJECT_FLAGS</code> has been deprecated since version 2.22 and should not be used in newly-written code. Do not re-use <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> flags but use your own variable to
  store flags.</p>
</div>
<p>
Gets the <a class="link" href="GtkObject.html#GtkObjectFlags" title="enum GtkObjectFlags"><span class="type">GtkObjectFlags</span></a> for an object without directly
accessing its members.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td>the object whose flags are returned.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GTK-OBJECT-FLOATING:CAPS"></a><h3>GTK_OBJECT_FLOATING()</h3>
<pre class="programlisting">#define GTK_OBJECT_FLOATING(obj)	  (g_object_is_floating (obj))
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">GTK_OBJECT_FLOATING</code> is deprecated and should not be used in newly-written code.</p>
</div>
<p>
Evaluates to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the object still has its floating reference count.
See the overview documentation for <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td>the object to examine.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GtkArgFlags"></a><h3>enum GtkArgFlags</h3>
<pre class="programlisting">typedef enum {
  GTK_ARG_READABLE	 = G_PARAM_READABLE,
  GTK_ARG_WRITABLE	 = G_PARAM_WRITABLE,
  GTK_ARG_CONSTRUCT	 = G_PARAM_CONSTRUCT,
  GTK_ARG_CONSTRUCT_ONLY = G_PARAM_CONSTRUCT_ONLY,
  GTK_ARG_CHILD_ARG	 = 1 &lt;&lt; 4
} GtkArgFlags;
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">GtkArgFlags</code> is deprecated and should not be used in newly-written code. Use corresponding <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> features instead</p>
</div>
<p>
Possible flags indicating how an argument should be treated.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GTK-ARG-READABLE:CAPS"></a><span class="term"><code class="literal">GTK_ARG_READABLE</code></span></p></td>
<td>the argument is readable. (i.e. can be queried)
</td>
</tr>
<tr>
<td><p><a name="GTK-ARG-WRITABLE:CAPS"></a><span class="term"><code class="literal">GTK_ARG_WRITABLE</code></span></p></td>
<td>the argument is writable. (i.e. settable)
</td>
</tr>
<tr>
<td><p><a name="GTK-ARG-CONSTRUCT:CAPS"></a><span class="term"><code class="literal">GTK_ARG_CONSTRUCT</code></span></p></td>
<td>the argument needs construction.
</td>
</tr>
<tr>
<td><p><a name="GTK-ARG-CONSTRUCT-ONLY:CAPS"></a><span class="term"><code class="literal">GTK_ARG_CONSTRUCT_ONLY</code></span></p></td>
<td>the argument needs construction (and will
be set once during object creation), but is otherwise cannot be
set.  Hence this flag is not allowed with <a class="link" href="GtkObject.html#GTK-ARG-WRITABLE:CAPS"><span class="type">GTK_ARG_WRITABLE</span></a>,
and is redundant with <a class="link" href="GtkObject.html#GTK-ARG-CONSTRUCT:CAPS"><span class="type">GTK_ARG_CONSTRUCT</span></a>.
</td>
</tr>
<tr>
<td><p><a name="GTK-ARG-CHILD-ARG:CAPS"></a><span class="term"><code class="literal">GTK_ARG_CHILD_ARG</code></span></p></td>
<td>an argument type that applies to (and may be different for)
each child.  Used by <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-new"></a><h3>gtk_object_new ()</h3>
<pre class="programlisting"><a class="link" href="GtkObject.html" title="GtkObject"><span class="returnvalue">GtkObject</span></a> *         gtk_object_new                      (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_new</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-new"><code class="function">g_object_new()</code></a> instead.</p>
</div>
<p>
Constructs an object given its arguments, enumerated in the call to the
function.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>the type identifying this object.  Returned by <a class="link" href="gtk-Types.html#gtk-type-unique" title="gtk_type_unique ()"><code class="function">gtk_type_unique()</code></a>
(although for a properly-written object it should be accessible through
a <span class="type">GTK_TYPE_FOO</span> macro.)</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
<td>name of the first property to set when constructing
the object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the new <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-sink"></a><h3>gtk_object_sink ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_sink                     (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_sink</code> has been deprecated since version 2.10 and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref-sink"><code class="function">g_object_ref_sink()</code></a> instead</p>
</div>
<p>
Removes the floating reference from a <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>, if it exists;
otherwise does nothing. See the <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> overview documentation at
the top of the page.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object to sink.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-ref"></a><h3>gtk_object_ref ()</h3>
<pre class="programlisting"><a class="link" href="GtkObject.html" title="GtkObject"><span class="returnvalue">GtkObject</span></a> *         gtk_object_ref                      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_ref</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> instead.</p>
</div>
<p>
Increases the reference count of the object.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object to reference.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>object</code></em>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-unref"></a><h3>gtk_object_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_unref                    (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_unref</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> instead.</p>
</div>
<p>
Decreases the reference count of an object.  When its reference count drops
to 0, the object is finalized (i.e. its memory is freed).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object to dereference.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-weakref"></a><h3>gtk_object_weakref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_weakref                  (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_weakref</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-weak-ref"><code class="function">g_object_weak_ref()</code></a> instead.</p>
</div>
<p>
Adds a weak reference callback to an object. Weak references are used for notification when an object is
finalized. They are called "weak references" because they allow you to safely
hold a pointer to an object without calling <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> (<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> adds
a strong reference, that is, forces the object to stay alive).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object to weakly reference.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
<td>callback to invoke before the object is freed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>extra data to pass to <span class="type">notify</span>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-weakunref"></a><h3>gtk_object_weakunref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_weakunref                (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_weakunref</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-weak-unref"><code class="function">g_object_weak_unref()</code></a> instead.</p>
</div>
<p>
Removes a weak reference callback to an object.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object stop weakly referencing.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
<td>callback to search for.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>data to search for.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-destroy"></a><h3>gtk_object_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_destroy                  (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_destroy</code> has been deprecated since version 2.24 and should not be used in newly-written code. Use <a class="link" href="GtkWidget.html#gtk-widget-destroy" title="gtk_widget_destroy ()"><code class="function">gtk_widget_destroy()</code></a> instead (if <em class="parameter"><code>object</code></em> is a widget)</p>
</div>
<p>
Emits the "destroy" signal notifying all reference holders that they should
release the <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>. See the overview documentation at the top of the
page for more details.
</p>
<p>
The memory for the object itself won't be deleted until
its reference count actually drops to 0; <a class="link" href="GtkObject.html#gtk-object-destroy" title="gtk_object_destroy ()"><code class="function">gtk_object_destroy()</code></a> merely asks
reference holders to release their references, it does not free the object.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object to destroy.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-get"></a><h3>gtk_object_get ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_get                      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_get</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-get"><code class="function">g_object_get()</code></a> instead.</p>
</div>
<p>
Gets properties of an object.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>a <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
<td>name of first property to get the value for.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-set"></a><h3>gtk_object_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_set                      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                         <em class="parameter"><code>...</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_set</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set"><code class="function">g_object_set()</code></a> instead.</p>
</div>
<p>
Sets properties on an object.
</p>
<p>
</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="type">void</span><span class="normal"> </span><span class="function">set_box_properties</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GtkBox.html">GtkBox</a></span><span class="symbol">*</span><span class="normal"> box</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="function"><a href="GtkObject.html#gtk-object-set">gtk_object_set</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_OBJECT</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"homogeneous"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">,</span>
<span class="normal">                                    </span><span class="string">"spacing"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">8</span><span class="symbol">,</span>
<span class="normal">                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>a <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
<td>name of the first property to set</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-set-data"></a><h3>gtk_object_set_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_set_data                 (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_set_data</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-data"><code class="function">g_object_set_data()</code></a> instead.</p>
</div>
<p>
Each object carries around a table of associations from
strings to pointers.  This function lets you set an association.
</p>
<p>
If the object already had an association with that name,
the old association will be destroyed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object containing the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
<td>name of the key.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>data to associate with that key.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-set-data-full"></a><h3>gtk_object_set_data_full ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_set_data_full            (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_set_data_full</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-data-full"><code class="function">g_object_set_data_full()</code></a> instead.</p>
</div>
<p>
Like <a class="link" href="GtkObject.html#gtk-object-set-data" title="gtk_object_set_data ()"><code class="function">gtk_object_set_data()</code></a> except it adds notification
for when the association is destroyed, either by
<a class="link" href="GtkObject.html#gtk-object-remove-data" title="gtk_object_remove_data ()"><code class="function">gtk_object_remove_data()</code></a> or when the object is destroyed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object containing the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
<td>name of the key.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>data to associate with that key.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
<td>function to call when the association is destroyed.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-remove-data"></a><h3>gtk_object_remove_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_remove_data              (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_remove_data</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-data"><code class="function">g_object_set_data()</code></a> to set the object data to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> instead.</p>
</div>
<p>
Removes a specified datum from the object's data associations (the object_data).
Subsequent calls to <a class="link" href="GtkObject.html#gtk-object-get-data" title="gtk_object_get_data ()"><code class="function">gtk_object_get_data()</code></a> will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
</p>
<p>
If you specified a destroy handler with <a class="link" href="GtkObject.html#gtk-object-set-data-full" title="gtk_object_set_data_full ()"><code class="function">gtk_object_set_data_full()</code></a>,
it will be invoked.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object maintaining the association.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
<td>name of the key for that association.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-get-data"></a><h3>gtk_object_get_data ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gtk_object_get_data                 (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_get_data</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-get-data"><code class="function">g_object_get_data()</code></a> instead.</p>
</div>
<p>
Get a named field from the object's table of associations (the object_data).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object maintaining the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
<td>name of the key for that association.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the data if found, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such data exists.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-remove-no-notify"></a><h3>gtk_object_remove_no_notify ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_remove_no_notify         (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_remove_no_notify</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-steal-data"><code class="function">g_object_steal_data()</code></a> instead.</p>
</div>
<p>
Remove a specified datum from the object's data associations (the object_data),
without invoking the association's destroy handler.
</p>
<p>
Just like <a class="link" href="GtkObject.html#gtk-object-remove-data" title="gtk_object_remove_data ()"><code class="function">gtk_object_remove_data()</code></a> except that any destroy handler
will be ignored.
Therefore this only affects data set using <a class="link" href="GtkObject.html#gtk-object-set-data-full" title="gtk_object_set_data_full ()"><code class="function">gtk_object_set_data_full()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object maintaining the association.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
<td>name of the key for that association.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-set-user-data"></a><h3>gtk_object_set_user_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_set_user_data            (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_set_user_data</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-data"><code class="function">g_object_set_data()</code></a> instead.</p>
</div>
<p>
For convenience, every object offers a generic user data
pointer.  This function sets it.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object whose user data should be set.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>the new value for the user data.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-get-user-data"></a><h3>gtk_object_get_user_data ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gtk_object_get_user_data            (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_get_user_data</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-get-data"><code class="function">g_object_get_data()</code></a> instead.</p>
</div>
<p>
Get the object's user data pointer.
</p>
<p>
This is intended to be a pointer for your convenience in
writing applications.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the user data field for object.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-add-arg-type"></a><h3>gtk_object_add_arg_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_add_arg_type             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_name</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> arg_type</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_flags</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_id</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_add_arg_type</code> is deprecated and should not be used in newly-written code.</p>
</div>
<p>
Deprecated in favor of the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property system including <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>.
Add a new type of argument to an object class.
Usually this is called when registering a new type of object.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg_name</code></em> :</span></p></td>
<td>fully qualify object name, for example GtkObject::user_data.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg_type</code></em> :</span></p></td>
<td>type of the argument.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg_flags</code></em> :</span></p></td>
<td>bitwise-OR of the <a class="link" href="GtkObject.html#GtkArgFlags" title="enum GtkArgFlags"><span class="type">GtkArgFlags</span></a> enum.  (Whether the argument is
settable or gettable, whether it is set when the object is constructed.)</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg_id</code></em> :</span></p></td>
<td>an internal number, passed in from here to the "set_arg" and
"get_arg" handlers of the object.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-set-data-by-id"></a><h3>gtk_object_set_data_by_id ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_set_data_by_id           (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_set_data_by_id</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-qdata"><code class="function">g_object_set_qdata()</code></a> instead.</p>
</div>
<p>
Just like <a class="link" href="GtkObject.html#gtk-object-set-data" title="gtk_object_set_data ()"><code class="function">gtk_object_set_data()</code></a> except that it takes
a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> instead of a string, so it is slightly faster.
</p>
<p>
Use <a class="link" href="GtkObject.html#gtk-object-data-try-key" title="gtk_object_data_try_key"><code class="function">gtk_object_data_try_key()</code></a> and <a class="link" href="GtkObject.html#gtk-object-data-force-id" title="gtk_object_data_force_id"><code class="function">gtk_object_data_force_id()</code></a>
to get an id from a string.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object containing the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data_id</code></em> :</span></p></td>
<td>quark of the key.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>data to associate with that key.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-set-data-by-id-full"></a><h3>gtk_object_set_data_by_id_full ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_set_data_by_id_full      (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_set_data_by_id_full</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-qdata-full"><code class="function">g_object_set_qdata_full()</code></a> instead.</p>
</div>
<p>
Just like <a class="link" href="GtkObject.html#gtk-object-set-data-full" title="gtk_object_set_data_full ()"><code class="function">gtk_object_set_data_full()</code></a> except that it takes
a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> instead of a string, so it is slightly faster.
</p>
<p>
Use <a class="link" href="GtkObject.html#gtk-object-data-try-key" title="gtk_object_data_try_key"><code class="function">gtk_object_data_try_key()</code></a> and <a class="link" href="GtkObject.html#gtk-object-data-force-id" title="gtk_object_data_force_id"><code class="function">gtk_object_data_force_id()</code></a>
to get an id from a string.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object containing the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data_id</code></em> :</span></p></td>
<td>quark of the key.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>data to associate with that key.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
<td>function to call when the association is destroyed.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-get-data-by-id"></a><h3>gtk_object_get_data_by_id ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gtk_object_get_data_by_id           (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_get_data_by_id</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-get-qdata"><code class="function">g_object_get_qdata()</code></a> instead.</p>
</div>
<p>
Just like <a class="link" href="GtkObject.html#gtk-object-get-data" title="gtk_object_get_data ()"><code class="function">gtk_object_get_data()</code></a> except that it takes
a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> instead of a string, so it is slightly faster.
</p>
<p>
Use <a class="link" href="GtkObject.html#gtk-object-data-try-key" title="gtk_object_data_try_key"><code class="function">gtk_object_data_try_key()</code></a> and <a class="link" href="GtkObject.html#gtk-object-data-force-id" title="gtk_object_data_force_id"><code class="function">gtk_object_data_force_id()</code></a>
to get an id from a string.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object containing the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data_id</code></em> :</span></p></td>
<td>quark of the key.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the data if found, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such data exists.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-remove-data-by-id"></a><h3>gtk_object_remove_data_by_id ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_remove_data_by_id        (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> data_id</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_remove_data_by_id</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-qdata"><code class="function">g_object_set_qdata()</code></a> with data of <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> instead.</p>
</div>
<p>
Just like <a class="link" href="GtkObject.html#gtk-object-remove-data" title="gtk_object_remove_data ()"><code class="function">gtk_object_remove_data()</code></a> except that it takes
a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> instead of a string, so it is slightly faster.
</p>
<p>
Remove a specified datum from the object's data associations.
Subsequent calls to <a class="link" href="GtkObject.html#gtk-object-get-data" title="gtk_object_get_data ()"><code class="function">gtk_object_get_data()</code></a> will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
</p>
<p>
Use <a class="link" href="GtkObject.html#gtk-object-data-try-key" title="gtk_object_data_try_key"><code class="function">gtk_object_data_try_key()</code></a> and <a class="link" href="GtkObject.html#gtk-object-data-force-id" title="gtk_object_data_force_id"><code class="function">gtk_object_data_force_id()</code></a>
to get an id from a string.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object containing the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data_id</code></em> :</span></p></td>
<td>quark of the key.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-remove-no-notify-by-id"></a><h3>gtk_object_remove_no_notify_by_id ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gtk_object_remove_no_notify_by_id   (<em class="parameter"><code><a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> key_id</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_remove_no_notify_by_id</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-steal-qdata"><code class="function">g_object_steal_qdata()</code></a> instead.</p>
</div>
<p>
Just like <a class="link" href="GtkObject.html#gtk-object-remove-no-notify" title="gtk_object_remove_no_notify ()"><code class="function">gtk_object_remove_no_notify()</code></a> except that it takes
a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> instead of a string, so it is slightly faster.
</p>
<p>
Use <a class="link" href="GtkObject.html#gtk-object-data-try-key" title="gtk_object_data_try_key"><code class="function">gtk_object_data_try_key()</code></a> and <a class="link" href="GtkObject.html#gtk-object-data-force-id" title="gtk_object_data_force_id"><code class="function">gtk_object_data_force_id()</code></a>
to get an id from a string.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>object containing the associations.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>key_id</code></em> :</span></p></td>
<td>quark of the key.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-data-try-key"></a><h3>gtk_object_data_try_key</h3>
<pre class="programlisting">#define gtk_object_data_try_key	    g_quark_try_string
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_data_try_key</code> is deprecated and should not be used in newly-written code.</p>
</div>
<p>
Useless deprecated macro. Ignore it.
</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-object-data-force-id"></a><h3>gtk_object_data_force_id</h3>
<pre class="programlisting">#define gtk_object_data_force_id    g_quark_from_string
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gtk_object_data_force_id</code> is deprecated and should not be used in newly-written code.</p>
</div>
<p>
Useless deprecated macro. Ignore it.
</p>
</div>
</div>
<div class="refsect1">
<a name="GtkObject.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GtkObject--user-data"></a><h3>The <code class="literal">"user-data"</code> property</h3>
<pre class="programlisting">  "user-data"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Read / Write</pre>
<p>Anonymous User Data Pointer.</p>
</div>
</div>
<div class="refsect1">
<a name="GtkObject.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GtkObject-destroy"></a><h3>The <code class="literal">"destroy"</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> *object,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-NO-HOOKS:CAPS"><code class="literal">No Hooks</code></a></pre>
<p>
Signals that all holders of a reference to the <a class="link" href="GtkObject.html" title="GtkObject"><span class="type">GtkObject</span></a> should release
the reference that they hold. May result in finalization of the object
if all references are released.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1">
<a name="GtkObject.see-also"></a><h2>See Also</h2>
<p>
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>
</p>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>